package csm.api.search;


/**
 * 검색 요청정보 클래스
 *
 * @author seungmun
 * @since 2014. 2. 7.
 */
public class SearchRequest
{

    private SearchProviderType provider        = SearchProviderType.Naver;
    private String             apiKey          = "";
    private String             defaultUrlParam = "";
    private int                pageSize        = 10;
    private int                currentPage     = 1;
    private String             category        = "";
    private String             searchData      = "";
    private String             searchType      = "";
    private String             searchQuery     = "";
    private String             sessionID       = "";
    private String             baseurl         = "";

    SearchRequest()
    {
    }

    public SearchRequest(SearchProviderType provider)
    {
        this.provider = provider;
    }

    public SearchProviderType getProvider()
    {
        return provider;
    }

    public void setProvider(SearchProviderType provider)
    {
        this.provider = provider;
    }

    /**
     * 접근키
     *
     * @return
     */
    public String getApiKey()
    {
        return apiKey;
    }

    /**
     * 접근키
     *
     * @param apiKey
     */
    public void setApiKey(String apiKey)
    {
        this.apiKey = apiKey;
    }

    /**
     * 기본파라메터값 URL 전송시 사용되는 기본 파라미터
     *
     * @return
     */
    public String getDefaultUrlParam()
    {
        return defaultUrlParam;
    }

    /**
     * 기본파라메터값
     *
     * @param defaultUrlParm
     */
    public void setDefaultUrlParam(String defaultUrlParam)
    {
        this.defaultUrlParam = defaultUrlParam;
    }

    /**
     * 페이지수
     *
     * @return
     */
    public int getPageSize()
    {
        return pageSize;
    }

    /**
     * 페이지수
     *
     * @param pageCount
     *            The pageCount to set.
     */
    public void setPageSize(int pageSize)
    {
        this.pageSize = pageSize;
    }

    /**
     * 현재 페이지
     *
     * @return Returns the currentPage.
     */
    public int getCurrentPage()
    {
        if (currentPage == 0)
        {
            return 1;
        }
        else
        {
            return currentPage;
        }
    }

    /**
     * 현재 페이지
     *
     * @param currentPage
     *            The currentPage to set.
     */
    public void setCurrentPage(int currentPage)
    {
        this.currentPage = currentPage;
    }

    /**
     * 검색어
     *
     * @return
     */
    public String getSearchData()
    {
        return searchData;
    }

    /**
     * 검색어
     *
     * @param searchData
     */
    public void setSearchData(String searchData)
    {
        this.searchData = searchData;
    }

    /**
     * 검색Category
     *
     * @return
     */
    public String getCategory()
    {
        return category;
    }

    /**
     * 검색Category
     *
     * @param category
     */
    public void setCategory(String category)
    {
        this.category = category;
    }

    /**
     * 검색에서 사용되는 검색쿼리(q)
     *
     * @param searchQuery
     */
    public void setSearchQuery(String searchQuery)
    {
        this.searchQuery = searchQuery;
    }

    /**
     * 검색에서 사용되는 검색쿼리(q)
     *
     * @return
     */
    public String getSearchQuery()
    {
        return searchQuery;
    }

    /**
     * 검색유형(Title, Author, Publ) 일부 사이트에서는 이걸 넣어야만 한다.
     *
     * @return
     */
    public String getSearchType()
    {
        return searchType;
    }

    /**
     * 검색유형(Title, Author, Publ) 일부 사이트에서는 이걸 넣어야만 한다.
     *
     * @param searchType
     */
    public void setSearchType(String searchType)
    {
        this.searchType = searchType;
    }

    /**
     * 검색을 한 유저정보
     *
     * @return
     */
    public String getSessionID()
    {
        return sessionID;
    }

    /**
     * 검색을 한 유저정보
     *
     * @param UserDetail
     */
    public void setSessionID(String sessionID)
    {
        this.sessionID = sessionID;
    }

    /**
     * Base URL
     *
     * @return
     */
    public String getBaseurl()
    {
        return baseurl;
    }

    public void setBaseurl(String baseurl)
    {
        this.baseurl = baseurl;
    }

}